window.workspace = function(){
	var response  = <?#$respons?>;
	var store, grid, win, sm, form;
	var sid = {'senderid':Ext.id(), 'keyword':Ext.id(), 'reveiverid':Ext.id(), 'dictid':Ext.id()};
	function addForm(rows){
		if(!win) {
		    form = new Ext.form.FormPanel({
				frame		: true,
				border		: false,
				bodyStyle	: 'padding:8px;',
		        labelWidth	: 110,
		        labelAlign  : 'right',
		    	defaults	: {
		    		xtype	  : 'textfield'
		    	},
		    	items		: [{
					xtype		: 'hidden',
					name		: 'id',
					value		: 0
				},{
					xtype		: 'combo',
					store		: new Ext.data.ArrayStore({
				        fields: ['id','name'],
				        data: main.cv2Array(response.dictid)
				    }),
					name			: 'dictid',
					hiddenName		: 'dictid',
					displayField	: 'name',
					valueField		: 'id',
					emptyText		: 'Selected...',
					width	    	: 120,
					typeAhead		: true,
					typeAheadDelay  : 0,
					triggerAction	: 'all',
					enableKeyEvents : true,
					fieldLabel		: '分类[Category]',
					allowBlank		: true,
					mode			: 'local'
				},{
					xtype		: 'combo',
		            store		: new Ext.data.ArrayStore({
			        	fields: ['id','name'],
			        	data: main.cv2Array(response.status)
			    	}),
					displayField	: 'name',
					valueField		: 'id',
					mode			: 'local',
					emptyText		: 'Selected...',
		            fieldLabel		: '是否显示[IsShow]',
		            width			: 120,
		            allowBlank		: false,
					triggerAction	: 'all',
					hiddenName		: 'status',
		            name			: 'status'
				},{
					xtype		: 'combo',
					store		: new Ext.data.JsonStore({
						url	: '/admin/live/share/douser.html',
						autoDestroy: true,
						fields: ['id', 'name'],
						root: 'dataset'
					}),
					name			: 'reveiverid',
					hiddenName		: 'reveiverid',
					displayField	: 'name',
					valueField		: 'id',
					emptyText		: 'Selected...',
					minChars		: 1,
					 pageSize		: 10,
		            listWidth		: 258,
		            width			: 240,
					typeAhead		: true,
					typeAheadDelay  : 0,
					triggerAction	: 'all',
					enableKeyEvents : true,
					fieldLabel		: '接收者[Receiver]',
					allowBlank	    : false,
					mode			: 'remote'
				},{
					xtype		: 'textfield',
					fieldLabel	: '标题[Title]',
					width		: 480,
					name		: 'title',
					maxLength   : 255,
					allowBlank	: false
				},{
					xtype		: 'htmleditor',
					enableSourceEdit : true,
					fieldLabel	: '内容[Content]',
					width		: 540,
					name		: 'msg',
					allowBlank	: false
				}]
			});
			win = new Ext.Window({
				title	: '添加[Add]',
				iconCls	: 'icon-add',	
				width	: 720,
				items	: [form],
				closeAction : 'hide',
				bbar 	: {
					xtype		: 'toolbar',
					buttonAlign	: 'right',
					items		: [{
						text	: '保存[Save]', 
						iconCls	: 'icon-save',
						url     : '/admin/live/basic/sitemsg/dosave.html',
						handler:function(){
						if(!form.getForm().isValid())
		        			return;
						Ext.Msg.confirm(GLang['30003'], GLang['30026'], function(btn){
							if(btn=="yes") {
				        		form.getForm().submit({
				        			waitMsg		: GLang['30017'],
									waitTitle 	: GLang['30003'],
					        		clientValidation: true,
					        		url		: '/admin/live/basic/sitemsg/dosave.html',
						        	success	: function(form, action) {
						        		store.reload();
						        		win.hide();
									},
									failure	: main.submitFailure
						    	});
							}
						});
					}}]
				}
			});
		}
		var id = Ext.isObject(rows)? rows.id:0;
		win.setTitle((id > 0)? '添加[Edit]':'添加[Add]');
		win.setIconClass((id > 0)? 'icon-edit':'icon-add');
		win.show();
		if(id < 1) {
			form.getForm().reset();
		} else {
			form.getForm().loadRecord(rows);
			form.getForm().findField('reveiverid').setRawValue(rows.get('reveiver'));
		}
	};
	store = new Ext.data.JsonStore({
	    autoDestroy	: true,
	    url			: '/admin/live/basic/sitemsg/dolist.html',
	    remoteSort	: true,
	    sortInfo	: {
	            field		: 'id',
	            direction	: 'DESC'
		},
		baseParams	: {
			start	: 0,
			limit	: main.pageSize
		},
		autoLoad		: true,
	    root			: 'dataset',
	 	totalProperty	: 'total',
	    fields			: ['id','senderid', 'sender', 'dictid', 'notes',
	         'title', 'msg', 'reveiverid', 'reveiver', 'status', 'stime']
	});
	sm   = new Ext.grid.CheckboxSelectionModel();
 	grid = {
		xtype		: 'grid',
		title		: response.title,
	    store		: store,
		region		: 'center', 
	    columns		: [
            sm,
			{header: '编号[ID]', width:60, sortable:true, dataIndex:'id'},
			{header: '发送者[Sender]', width:120, sortable:true, dataIndex:'senderid', renderer:function(v,meta,obj){
				return obj.get('sender');
			}},
			{header: '分类[Category]', width:60, sortable:true, dataIndex:'dictid', renderer:function(v,meta,obj){
				return response.dictid[v];
			}},
			{header: '标题[Title]', width:120, dataIndex:'title'},
			{header: '内容[Content]', width:240, dataIndex:'notes'},
			{header: '接收者[Receiver]', width:140, sortable:true, dataIndex:'reveiverid', renderer:function(v,meta,obj){
				return obj.get('reveiver');
			}},
			{header: '是否显示[IsShow]', width:60, sortable:true, dataIndex:'status', renderer:function(v){
				return response.status[v];
			}},
			{header: '发送时间[AddTime]', width:100, dataIndex:'stime'}
		],
	    viewConfig	: {
	        forceFit	 : true,
	        scrollOffset : 0
	    },
	    listeners	: {
	    	'destroy':function(){
    			win && win.close();
    		},'rowdblclick':function(grid, index, e){
		    	var data = grid.store.getAt(index).copy();
		    	addForm(data);
		    }
    	},
	    sm			: sm,
	    stripeRows	: true,
	    tbar		: [{
			text	: '刷新[Reload]',
			iconCls	: 'icon-refresh',
			handler : function(){
				store.reload(); 
			}
	    },'-',{
			text	: '添加[Add]',
			iconCls	: 'icon-add',
			url     : '/admin/live/basic/sitemsg/dosave.html',
			handler : function() {
				addForm(0);
			}
		},'-','检索词[KeyWorld]:',{
			xtype       : 'textfield',
			id	    	: sid.keyword,
			width	    : 120
		},'发送者[Sender]:',{
			xtype		: 'combo',
			store		: new Ext.data.JsonStore({
				url	: '/admin/live/share/douser.html',
				autoDestroy: true,
				fields: ['id', 'name'],
				root: 'dataset'
			}),
			displayField	: 'name',
			valueField		: 'id',
			emptyText		: 'Selected...',
			minChars		: 1,
			 pageSize		: 10,
			listWidth		: 258,
			width			: 160,
		   id	    	    : sid.senderid,
			typeAhead		: true,
			typeAheadDelay  : 0,
			triggerAction	: 'all',
			enableKeyEvents : true,
			mode			: 'remote'
		},'-','接收者[Receiver]:',{
			xtype		: 'combo',
			store		: new Ext.data.JsonStore({
				url	: '/admin/live/share/douser.html',
				autoDestroy: true,
				fields: ['id', 'name'],
				root: 'dataset'
			}),
			displayField	: 'name',
			valueField		: 'id',
			emptyText		: 'Selected...',
			minChars		: 1,
			 pageSize		: 10,
			listWidth		: 258,
			width			: 160,
		   id	    	    : sid.reveiverid,
			typeAhead		: true,
			typeAheadDelay  : 0,
			triggerAction	: 'all',
			enableKeyEvents : true,
			mode			: 'remote'
		},'-','分类[Category]:',{
            xtype		: 'combo',
            store		: new Ext.data.ArrayStore({
		        fields: ['id','name'],
		        data: main.cv2Array(response.dictid)
		    }),
			displayField	: 'name',
			valueField		: 'id',
			emptyText		: 'Selected...',
            width			: 100,
			triggerAction	: 'all',
			id      		: sid.dictid,
			mode			: 'local'
        },'-',{
			text			: 'DoSearch',
			iconCls			: 'icon-search',
			handler: function() {
				store.baseParams.query       = Ext.getCmp(sid.keyword).getValue();
				store.baseParams.senderid    = Ext.getCmp(sid.senderid).getValue();
				store.baseParams.reveiverid  = Ext.getCmp(sid.reveiverid).getValue();
				store.baseParams.dictid      = Ext.getCmp(sid.dictid).getValue();
				store.reload(); 
			}
		}],
		bbar		: new Ext.PagingToolbar({
			pageSize	: main.pageSize,
			store		: store,
			displayInfo	: true
		})
	};
	return grid;
}();